# Справочники открытых ключей и ключей, подготовленных для хранения на ЖМД

**Важно**: 

* никаких секретных ключей на ЖМД не хранится, 
* все секретные ключи остаются на своих носителях в сейфе, 
* секретные ключи никуда не копируются и не используется subst,
* никаких посторонних программ и виртуальных дисков. 

В результате описанных здесь действий **штатными** средствами АРМ РМП 
создается *справочник*, пригодный для использования скриптами, 
а сами носители, после загрузки с них всех ключей в память драйвера 
штатной утилитой ```asrkeyw```, убираются обратно в место хранения.

## Система именования ключей

Здесь и далее в записи идентификатора ключа вида *XXXXSSSSSS[YY]*:

* *XXXX* - номер клиента в сети (серии), 4 цифры;
* *SSSSSS* - сеть (серия), объединяющая разных клиентов, 6 цифр;
* *YY* - личный номер участника клиента - есть только у ключей ЭП (КА), 
2 цифры.

## Порядок загрузки ключей

Ключи бывают как *совмещенные* (ЭП + шифрование), так и те, где только 
одна функция (ЭП или шифрование, и другая функция при загрузке такого 
ключа становится недоступной). 
Поэтому для скриптов важно, чтобы первым в драйвер с помощью asrkeyw 
всегда загружался именно совмещенный ключ! 
Далее можно *Загрузить* любые другие (максимум 16). 
Важно знать, что нажимать *Выгрузить* затем поштучно не следует 
во избежание ошибок с имитовставками - только *Выгрузить все* и 
загрузить все нужные заново.

АРМ РМП всегда (в настройке по умолчанию) работает с одним ключом, 
очищая память драйвера. Поэтому после АРМ РМП надо перезагрузить 
все ключи с помощью asrkeyw заново.

В АРМ РМП можно штатно использовать *главный ключ* и выполнять свои 
небольшие *скрипты*, описанные в документации к АРМ РМП, но здесь 
это не используется, поскольку они требуют частой смены носителей.

## Структура справочников АРМ РМП по умолчанию

Первым делом создайте все справочники с настройками по умолчанию, 
как предлагает АРМ РМП при загрузке каждого нового защищенного ключа.
Проделайте это для всех имеющихся ключей, затем загрузите с открытых 
носителей справочники открытых ключей других абонентов согласно 
штатной документации.
 
При этом для каждого ключа будут созданы отдельные папки в 
*%APPDATA%\MDPREI\РМП Верба-OW\Настройка для ключа XXXX-SSSSSS[-YY]*, 
в каждой из которых есть (одна или обе) папки:

* *FAXKEY* - справочник открытых ключей ЭП (КА);
  * *SSSSSS* - серия;
    * *LFAX.SPR* - сам справочник;
    * *XXXXYY.IMM* - файл(ы) имитовставки для защиты.
* *OPENKEY* - справочник открытых ключей шифрования;
  * *SSSSSS* - серия;
    * *LPUB.SPR* - сам справочник;
    * *XXXX.IMP* - файл(ы) имитовставки для защиты.

Также туда по умолчанию скопированы ключи, подготовленные для хранения 
на ЖМД (из папок *HD1* на носителях):

* *XXXXYY.HSG* - для ключей ЭП (КА);
* *KS_XXXX* и *SEC_XXXX.KEY* - для ключей шифрования.

Дополнительно в папках для ЖМД еще могут находиться:

* *XXXX.PUB* - открытый ключ шифрования;
* *XXXXYY.LFX* - открытый ключ ЭП (КА).

## Отличие общего справочника от отдельных

Справочники АРМ РМП по умолчанию располагаются каждый в отдельной папке 
глубоко в профиле пользователя и пригодны для отдельного независимого 
использования только со вставкой своего носителя каждый раз, поскольку 
в отличие от других уже более продвинутых систем, формат хранения данных 
ключей на носителе не позволяет хранить их более одного на каждом.

В предлагаемом решении создается общий справочник, для которого не 
требуется переставлять носители для каждой операции. 
Единственное отличие - общий справочник, используемый разными ключами, 
должен быть подписан для защиты от изменений имитовставками каждого из 
этих ключей, и целостность этого проверяется.

## Корневая папка для общего справочника

Общий справочник для скриптов удобнее всего создать поближе к корню диска, 
чтобы и пути были короткие, и без пробелов, и без русских букв. 

Например, *C:\Pub*. Далее везде эта папка будет называться *корневой*.

## Ключи, подготовленные для хранения на ЖМД

По умолчанию функции библиотеки используют папку *A:\HD1*, 
но рекомендуется эти ключи, подготовленные штатным образом специально 
для хранения на ЖМД (а при использовании токенов это вообще единственная 
возможность), скопировать для работы в корневую папку, разложив по 
соответствующим папкам их серий *SSSSSS*, которые надо создать вручную. 
Затем скопировать туда файлы из папок по умолчанию (в *%APPDATA%*) 
или из папок *HD1* на носителях.

Примечание: в АРМ РМП есть пункт меню *Настройки* - *Копировать ключи 
подготовленные для хранения на ЖМД...* с возможностью указать папку 
*HD1* на носителе, но этот метод игнорирует корневую папку.

## Экспорт открытых ключей

Запустить АРМ РМП с соответствующим носителем и выполнить:

* Кнопка *Справочники* - закладка *Справочники открытых ключей*;
* Выделить любой узел - правой кнопкой мыши - *Экспорт всех ключей из всех 
справочников* - указать корневую папку.

## Создание нового общего справочника

Запустить АРМ РМП с совмещенным(!) носителем и выполнить:

* *Настройки* - *Создать новый справочник открытых ключей...* - *ЭП*;
  * Указать, куда - в корневую папку;
  * Указать, откуда добавить открытые ключи ЭП (.lfx) - *A:\HD1*;
* *Настройки* - *Создать новый справочник открытых ключей...* - *Шифрования*;
  * Указать, куда - в корневую папку;
  * Указать, откуда добавить открытые ключи шифрования (.pub) - *A:\HD1*;
* *Настройки* - *Каталог СКЗИ...* - *Каталог с секретным ключом шифрования*;
  * Указать корневую папку;
* *Настройки* - *Каталог СКЗИ...* - *Каталог с секретным ключом подписи*;
  * Указать корневую папку;

## Импорт открытых ключей в справочник

Запустить АРМ РМП и выполнить:

* *Настройки* - *Добавить открытый ключ в справочник...* - *ЭП*;
  * Выделить все экспортированные ранее файлы *.lfx* и добавить 
(возможны разные сообщения, что уже есть и т.п.)
* *Настройки* - *Добавить открытый ключ в справочник...* - *Шифрования*;
  * Выделить все экспортированные ранее файлы *.pub* и добавить 
(возможны разные сообщения, что уже есть и т.п.)

Экспортированные ключи после этого можно удалить (для работы они 
не требуются), но своим наличием они позволяют лучше видеть, какие 
ключи присутствуют в справочниках АРМ КБР и их не нужно будет повторно 
экспортировать при следующем переподписывании общего справочника.

Также можно импортировать сразу весь какой-то внешний справочник 
методом перетаскивания мышью в окно *Справочники* - *Справочники 
открытых ключей* файла *LFAX.SPR* или *LPUB.SPR* (ЭП или шифрования, 
соответственно).

## Подписывание общего справочника другими ключами

Запустить АРМ РМП с каждым из других носителей и выполнить указание 
корневой папки сначала для открытых ключей, а потом для закрытых, 
отвечая *Да* на каждый вопрос *Подписать весь справочник?*:

* *Настройки* - *Каталог СКЗИ...* - *Каталог с открытыми ключами подписи*;
* *Настройки* - *Каталог СКЗИ...* - *Каталог с открытыми ключами шифрования*;
* *Настройки* - *Каталог СКЗИ...* - *Каталог с секретным ключом шифрования*;
* *Настройки* - *Каталог СКЗИ...* - *Каталог с секретным ключом подписи*.
                                                         
## Переподписывание общего справочника

Позже, если в справочнике происходят какие-либо изменения (добавление 
или удаление открытого ключа) или скрипты при работе выдают ошибку 111 
(*Неверная имитовставка*), то общий справочник надо переподписать 
каждым ключом заново - зайти в АРМ РМП с каждым действующим носителем и 
ответить *Да* на соответствующий вопрос, удостоверяясь, 
что *Справочники* - *Каталоги закрытых ключей и справочников* все 
указывают на корневую папку, а не в профиль пользователя по умолчанию.

Рекомендуется пройти два полных круга с каждым носителем, чтобы убедиться, 
что общий справочник полностью готов для использования всех его ключей.

## Основные операции позже

### Добавление нового открытого ключа

В папку соответствующей серии *SSSSSS* корневой папки скопировать 
все файлы из папки *HD1* на новом носителе.

Запустить АРМ РМП с новым носителем, выполнить настройку по умолчанию 
и экспорт новых открытых ключей из справочника АРМ РМП, созданного по 
умолчанию, в корневую папку.

Запустить АРМ РМП со всеми другими действующими носителями поочередно 
и выполнить импорт всех экспортированных ключей в общий справочник, 
обращая внимание на указания из раздела *Переподписывание общего 
справочника*.

### Удаление старого открытого ключа

Запустить АРМ РМП со всеми другими действующими носителями поочередно 
и выполнить удаление ключа из справочников, а затем переподписать их.

Удалить все оставшиеся соответствующие файлы, если есть:

* *XXXX.PUB*, *XXXXSSSSSS.PUB*, *XXXX.IMP*, *KS_XXXX*, *SEC_XXXX.KEY*
* *XXXXYY.LFX*, *XXXXSSSSSSYY.LFX*, *XXXXYY.IMM*, *XXXXYY.HSG*
